package com.wk.warehouse.mapper;

import com.wk.warehouse.entity.Product;

import java.util.HashMap;
import java.util.List;

public interface ProductMapper {
	
	/**
	 * 查询商品信息
	 */
	List<Product> selectProductMess(HashMap<String, Object> map);
	
	/**
	 * 查询商品总数
	 */
	int selectCount(Product product);
	
	/**
	 * 修改商品
	 */
	int updateProduct(Product product);

	/**
	 * 添加商品
	 */
	int addProduct(Product product);
	
	/**
	 * 改变商品的上下架状态
	 */
	int changeState(Product product);

	/**
	 * 出库成功后更新商品数量
	 */
	public int updateProductNum(Product product);

	/**
	 * 修改源商品库存
	 */
	public int updateSourceInvent(HashMap map);

	/**
	 * 修改目标商品库存
	 */
	public int updateTargetInvent(HashMap map);

	/**
	 * 商品库存
	 */
	public int findProductInvent(int productId);
	
	/**
	 * 查询调货数量
	 */
	public Integer countProduct(Product product);

	/**
	 * 先将结果集插入到商品表，再获取最新的商品id，最后修改插入的信息（仓库id,编号）
	 *	下面三个语句需用事务保证一致性，注意product_id不同（查询插入是源商品id，修改时目标商品id）
	 */
	public int insertSelectResult(int productId);
	public int getNewProductId();
	public int updateInsertInfo(Product product);


	/**
	 * 根据商品编码查商品信息：调货编码验证
	 */
	public int findProductByNum(String productNum);

	/**
	 * 根据商品id查商品信息
	 */
	public Product selectProductById(int productId);

	/**
	 * 删除商品
	 */
	public int deleteProduct(int productId);
}